﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Text.RegularExpressions;

namespace DataAccessComponents
{
    public class LinieLotnicze : IDataErrorInfo
    {
        /// <summary>
        /// Id linie lotnicze
        /// </summary>
        private int id_linielotnicze;

        public int Id_linielotnicze
        {
            get { return id_linielotnicze; }
            set { id_linielotnicze = value; }
        }

        /// <summary>
        /// Nazwa lini lotniczych
        /// </summary>
        private string nazwa;

        public string Nazwa
        {
            get { return nazwa; }
            set { nazwa = value; }
        }

        /// <summary>
        /// Opis lini lotniczych
        /// </summary>
        private string opis;

        public string Opis
        {
            get { return opis; }
            set { opis = value; }
        }

        /// <summary>
        /// Konstruktor obiektu linie lotnicze
        /// </summary>
        /// <param name="idll">Id linie lotnicze</param>
        /// <param name="naz">Nazwa</param>
        /// <param name="op">Opis</param>
        public LinieLotnicze(int idll, string naz, string op)
        {
            this.id_linielotnicze = idll;
            this.nazwa = naz;
            this.opis = op;
        }

        public LinieLotnicze() : this(0, "", "") { }

        public string Error
        {
            get { return string.Empty; }
        }

        public string this[string propertyName]
        {
            get
            {
                string results = string.Empty;
                propertyName = propertyName ?? string.Empty;

                if (propertyName == "Nazwa")
                {
                    if (string.IsNullOrEmpty(this.Nazwa))
                    {
                        results = "Pole \"Nazwa\" nie może być puste";
                    }
                    else if (Regex.IsMatch(this.Nazwa, @"[@£_^{}\[~\]|ÆæßÉ!¤%&'()\*\+,.:;<=>§?]+"))
                    {
                        results = "Pole \"Nazwa\" zawiera niedozwolone znaki";
                    }

                }

                return results;
            }
        }
    }

}
